The present invention relates generally to component placement machines, such as so-called xe2x80x9cpick and placexe2x80x9d machines used in assembly of surface mount devices (SMDs) and other components onto printed circuit boards (PCBs), and more particularly to optimizers for use in configuring such machines.
Known techniques for optimization of pick and place machines and other types of component placement machines are described in U.S. Pat. No. 5,390,283 issued Feb. 14, 1995 in the name of inventors Larry J. Eshelman and J. David Schaffer and entitled xe2x80x9cMethod for Optimizing the Configuration of a Pick and Place Machine,xe2x80x9d U.S. Pat. No. 5,864,833 issued Jan. 26, 1999 in the name of inventors J. David Schaffer and Murali Mani and entitled xe2x80x9cApparatus for Optimizing the Layout and Charge Maps of a Flowline of Pick and Place Machines,xe2x80x9d and U.S. Pat. No. 5,909,674 issued Jun. 1, 1999 in the name of inventors J. David Schaffer and Murali Mani and entitled xe2x80x9cMethod for Optimizing the Layout and Charge Maps of a Flowline of Pick and Place Machines,xe2x80x9d all of which are commonly assigned with the present application and incorporated by reference herein.
Despite the considerable advances provided by the techniques described in the above-cited references, further improvements are needed in optimization of component placement machines. For example, existing component placement machine optimizers are not readily configurable to handle arbitrary numbers of precedence constraints, i.e., constraints which specify that one part must be placed by the machine before another part. Such constraints are becoming increasingly important as a result of the stringent tolerance requirements associated with shrinking component and board sizes. It is therefore apparent that a need exists for a modular optimizer which provides efficient handling of an arbitrary number of precedence constraints.
The invention provides improved techniques for optimization of component placement machines. In accordance with one aspect of the invention, a modular optimizer for a component placement machine is configured so as to be able to handle multiple precedence constraints in an efficient manner.
More particularly, a modular optimizer configured in accordance with the invention is used to determine a configuration of a production line including one or more component placement machines. The precedence constraints may be of the form A B MT, which specifies that part A must be placed on a designated printed circuit board (PCB) or other type of assembly structure before part B if either part is to be placed by a machine type MT. A given set of precedence constraints includes at least a first class of constraints that apply to only one component placement machine type and a second class of constraints that apply to more than one component placement machine type. Assignment of constraints to the different classes is based on decisions of a part splitter module of the modular optimizer regarding which parts are assigned to which machine types. Separation of the set of precedence constraints into the first and second classes of precedence constraints is thus implemented at least in part in the part splitter module of the modular optimizer.
Each of the constraints in the first class of constraints associated with a given machine type is handled in a corresponding machine module of the modular optimizer. For example, constraints associated with only a Fast Component Mounter (FCM) machine are handled in an FCM module of the modular optimizer, while constraints associated with only an Advanced Component Mounter (ACM) machine are handled in an ACM module of the modular optimizer. The second class of constraints is handled in the part splitter module of the modular optimizer. As a result, if two parts associated with a given precedence constraint are assigned to two different machine types, the splitter module determines if the assignment is feasible. Outputs of the part splitter module are delivered to the machine modules and processed therein to generate information used in determining the configuration of the production line.
In accordance with another aspect of the invention, for a given precedence constraint of the form A B MT, the part splitter module may: (i) assign neither part A nor part B to a machine of type MT, in which case the constraint can be ignored; (ii) assign both part A and part B to machines of type MT, such that the constraint is in the first class of constraints and is handled by the machine module corresponding to machine type MT; or (iii) assign one of part A and part B to one machine type and the other part to another machine type, such that the constraint is in the second class of constraints and is handled by the part splitter module.
In accordance with a further aspect of the invention, the processing of the precedence constraints may utilize a data structure which includes static constraint counts and dynamic constraint counts. The static constraint counts are generally determined upon reading of a precedence constraint file. The dynamic constraint counts are generally determined on a cumulative basis in accordance with decisions of the splitter module regarding assignment of particular parts to particular machine types.